#include "UART.h"

#ifdef _UART_EN_
void	initUART(void)
{
	P_UART_TX = 1;			//	
	M_UART_TX = 0;			//	
}

void	UART_SendByte(uint8_t txdata)
{
    #if 0
	volatile uint8_t	i;
	
	GIE = 0;
	
	//起始码
	P_UART_TX = 0;
	GCC_DELAY(9);

	//数据位
	for(i=0; i<8; i++)
	{
		if(txdata&0x01)		{P_UART_TX=1;	GCC_DELAY(2);}
		else				{P_UART_TX=0;	GCC_DELAY(4);}		
		txdata = txdata>>1;
	}

	//结束码
	GCC_DELAY(1);
	P_UART_TX = 1;
	GCC_DELAY(9);

	GIE = 1;
    #endif
}



void	UART_Printf(char* str)
{
	while(*str)
	{
		UART_SendByte(*str++);
	}
}

void	UART_PrintfPara(char* str, uint8_t para)
{
	char strBuf[5];
	uint8_t i;
	
	while(*str)
	{
		UART_SendByte(*str++);
	}
	
	strBuf[0]=para/100+'0';
	para = para%100;
	strBuf[1]=para/10+'0';
	strBuf[2]=para%10+'0';
	strBuf[3]='\r';
	strBuf[4]='\n';
	for(i=0; i<5;i++)
	{
		UART_SendByte(strBuf[i]);
	}
}

void	UART_PrintfPara16(char* str, uint16_t para)
{
	char strBuf[7];
	uint8_t i;

    GCC_CLRWDT();
    
	while(*str)
	{
		UART_SendByte(*str++);
	}

    strBuf[0]=para/10000+'0';
    para = para%10000;
	strBuf[1]=para/1000+'0';
	para = para%1000;
	strBuf[2]=para/100+'0';
    para = para%100;
	strBuf[3]=para/10+'0';
	strBuf[4]=para%10+'0';
	strBuf[5]='\r';
	strBuf[6]='\n';
	for(i=0; i<7;i++)
	{
		UART_SendByte(strBuf[i]);
	}
}
#endif
